home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / sound / mixer_oss.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  77 lines

  1. #ifndef __SOUND_MIXER_OSS_H
  2. #define __SOUND_MIXER_OSS_H
  3.  
  4. /*
  5.  *  OSS MIXER API
  6.  *  Copyright (c) by Jaroslav Kysela <perex@suse.cz>
  7.  *
  8.  *
  9.  *   This program is free software; you can redistribute it and/or modify
  10.  *   it under the terms of the GNU General Public License as published by
  11.  *   the Free Software Foundation; either version 2 of the License, or
  12.  *   (at your option) any later version.
  13.  *
  14.  *   This program is distributed in the hope that it will be useful,
  15.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  *   GNU General Public License for more details.
  18.  *
  19.  *   You should have received a copy of the GNU General Public License
  20.  *   along with this program; if not, write to the Free Software
  21.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  22.  *
  23.  */
  24.  
  25. #if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
  26.  
  27. typedef struct _snd_oss_mixer_slot snd_mixer_oss_slot_t;
  28. typedef struct _snd_oss_file snd_mixer_oss_file_t;
  29.  
  30. typedef int (*snd_mixer_oss_get_volume_t)(snd_mixer_oss_file_t *fmixer, snd_mixer_oss_slot_t *chn, int *left, int *right);
  31. typedef int (*snd_mixer_oss_put_volume_t)(snd_mixer_oss_file_t *fmixer, snd_mixer_oss_slot_t *chn, int left, int right);
  32. typedef int (*snd_mixer_oss_get_recsrc_t)(snd_mixer_oss_file_t *fmixer, snd_mixer_oss_slot_t *chn, int *active);
  33. typedef int (*snd_mixer_oss_put_recsrc_t)(snd_mixer_oss_file_t *fmixer, snd_mixer_oss_slot_t *chn, int active);
  34. typedef int (*snd_mixer_oss_get_recsrce_t)(snd_mixer_oss_file_t *fmixer, unsigned int *active_index);
  35. typedef int (*snd_mixer_oss_put_recsrce_t)(snd_mixer_oss_file_t *fmixer, unsigned int active_index);
  36.  
  37. #define SNDRV_OSS_MAX_MIXERS    32
  38.  
  39. struct _snd_oss_mixer_slot {
  40.     int number;
  41.     unsigned int stereo: 1;
  42.     snd_mixer_oss_get_volume_t get_volume;
  43.     snd_mixer_oss_put_volume_t put_volume;
  44.     snd_mixer_oss_get_recsrc_t get_recsrc;
  45.     snd_mixer_oss_put_recsrc_t put_recsrc;
  46.     unsigned long private_value;
  47.     void *private_data;
  48.     void (*private_free)(snd_mixer_oss_slot_t *slot);
  49.     int volume[2];
  50. };
  51.  
  52. struct _snd_oss_mixer {
  53.     snd_card_t *card;
  54.     char id[16];
  55.     char name[32];
  56.     snd_mixer_oss_slot_t slots[SNDRV_OSS_MAX_MIXERS]; /* OSS mixer slots */
  57.     unsigned int mask_recsrc;        /* exclusive recsrc mask */
  58.     snd_mixer_oss_get_recsrce_t get_recsrc;
  59.     snd_mixer_oss_put_recsrce_t put_recsrc;
  60.     void *private_data_recsrc;
  61.     void (*private_free_recsrc)(snd_mixer_oss_t *mixer);
  62.     struct semaphore reg_mutex;
  63.     snd_info_entry_t *proc_entry;
  64.     int oss_dev_alloc;
  65.     /* --- */
  66.     int oss_recsrc;
  67. };
  68.  
  69. struct _snd_oss_file {
  70.     snd_card_t *card;
  71.     snd_mixer_oss_t *mixer;
  72. };
  73.  
  74. #endif /* CONFIG_SND_MIXER_OSS */
  75.  
  76. #endif /* __SOUND_MIXER_OSS_H */
  77.